home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zn.d64
/
proc.graph
< prev
next >
Wrap
Text File
|
2007-03-01
|
7KB
|
211 lines
0010 ╨╥╧├ GRAPH(TYPE,╥┼╞ VALUES(,),╥┼╞ SCALE(,),╥┼╞ LABELS$()) ├╠╧╙┼─
0020 // ┴.├.═ILLEST - 22.4.86 VERSION
0030 // VALUES(0,2):=0 FOR NO GRID
0040 // '^' IDICATES ITEM EXCEEDS SCALE
0050 // PENUP:NO AXES DRAWN(EXCEPT ZERO CROSS AXES - 1.7.86)
0060 // SPLITSCREEN CLEARS DISPLAY (REPLACES GRID) LEAVING 'X' 'Y' AXES
0070 ╒╙┼ GRAPHICS
0080 GRAPHICSCREEN(0)
0090 ╒╙┼ SYSTEM
0100 ─╔═ N$ ╧╞ 6, HI(26)
0110 STORE(1)
0120 FULLSCREEN
0130 PENDOWN
0140 WINDOW(INQ(19),INQ(20),INQ(21),INQ(22))
0150 XST:=SCALE(1,1); YST:=SCALE(1,2)
0160 XEND:=SCALE(2,1); YEND:=SCALE(2,2)
0170 XN:=SCALE(3,1); YN:=SCALE(3,2)
0180 XI:=(XEND-XST)/XN; YI:=(YEND-YST)/YN
0190 // ORIGINS(4 PIXELS TO RT):-
0200 OX:=INQ(19)+38; OY:=INQ(21)+12
0210 XSPACE:=INQ(20)-INQ(19); YSPACE:=INQ(22)-INQ(21)
0220 XPIX:=XSPACE-38-16; YPIX:=YSPACE-12-28 //NUMBERS & LABELS ALLOWED FOR
0230 PAIRS:=VALUES(0,1) //PAIRS OF DATA
0240 X'SC:=(XEND-XST)/XPIX //* PIXELS TO CONVERT TO XSCALE
0250 Y'SC:=(YEND-YST)/YPIX // * PIXELS TP CONVERT TO YSCALE
0260 TEXTSTYLE(1,1,0,0)
0270 VIEWPORT(OX,OX+XPIX,OY,OY+YPIX)
0280 WINDOW(XST,XEND,YST,YEND) //SCALE SET HERE
0290 ╔╞ HI(14)=╘╥╒┼ ╘╚┼╬
0300 VIEWPORT(OX-3,OX+XPIX+16,OY+1,OY+YPIX+28)
0310 CLEAR // INNER AREA
0320 CROSS'AXES
0330 ╔╞ VALUES(0,2)=╘╥╒┼ ╘╚┼╬ GRID
0340 ┼╬─╔╞
0350 VIEWPORT(HI(19),HI(20),HI(21),HI(22))
0360 ╔╞ HI(16)=╘╥╒┼ ╘╚┼╬ // MISS OUT AXIS IF PENDOWN FALSE
0370 TICK:=2 //SIZE OF A GRADUATION MARK
0380 GAP:=4 //GAP BETWEEN TICK AND TEXT
0390 H:=8 //TEXT HEIGHT
0400 W:=8 //TEXT WIDTH
0410 ╞╧╥ AXIS:=0 ╘╧ 1 ─╧
0420 TEXTSTYLE(1,1,0,1)
0430 MOVETO(XST-4*X'SC,YST)
0440 ├┴╙┼ AXIS ╧╞
0450 ╫╚┼╬ 0
0460 DRAWTO(XEND+4*X'SC,YST)
0470 PLOTTEXT(XEND+8*X'SC,YST-5*Y'SC,"X")
0480 ╫╚┼╬ 1
0490 MOVETO(XST-4*X'SC,YST)
0500 DRAWTO(XST-4*X'SC,YEND)
0510 PLOTTEXT(XST-20*X'SC,YEND+5*Y'SC,"Y")
0520 ┼╬─├┴╙┼
0530 SCALE'DIVISIONS:=XN
0540 ╔╞ AXIS=1 ╘╚┼╬ SCALE'DIVISIONS:=YN
0550 ╞╧╥ I:=0 ╘╧ SCALE'DIVISIONS ─╧
0560 ├┴╙┼ AXIS ╧╞
0570 ╫╚┼╬ 0
0580 HOR:=XST+(XI*I); VERT:=YST
0590 NUM:=XST+I*XI
0600 ╫╚┼╬ 1
0610 HOR:=XST-4*X'SC; VERT:=YST+(YI*I)
0620 NUM:=YST+I*YI
0630 ┼╬─├┴╙┼
0640 MOVETO(HOR,VERT)
0650 N$:=╙╘╥$(NUM)
0660 L:=╠┼╬(N$)
0670 L2:=L*.5
0680 ├┴╙┼ AXIS ╧╞
0690 ╫╚┼╬ 0 // CONDITIONS FOR LABELS
0700 TICK:=1
0710 PX:=HOR-(W*L2*X'SC)
0720 PY:=VERT-(TICK+GAP+H)*Y'SC
0730 MOVETO(HOR,YST)
0740 ╔╞ I=0 ╘╚┼╬
0750 TICK:=3
0760 PLOTTEXT(PX,PY,N$)
0770 END'LAST'NUM:=PX+(W*L*X'SC)
0780 ┼╠╔╞ PX>END'LAST'NUM+1*X'SC ╘╚┼╬
0790 TICK:=3
0800 PLOTTEXT(PX,PY,N$)
0810 END'LAST'NUM:=PX+(W*L*X'SC)
0820 ┼╠╙┼
0830 TICK:=1
0840 ┼╬─╔╞
0850 DRAWTO(HOR,VERT-(TICK*Y'SC))
0860 ╫╚┼╬ 1
0870 GAP:=1; TICK:=1
0880 PX:=HOR-(TICK+GAP+W*L)*X'SC
0890 PY:=VERT-(H*.5*Y'SC)
0900 ╔╞ YPIX/YN>10 ╘╚┼╬
0910 PLOTTEXT(PX,PY,N$)
0920 ┼╠╔╞ YPIX/YN>5 ┴╬─ I ═╧─ 2=0 ╘╚┼╬
0930 PLOTTEXT(PX,PY,N$)
0940 ┼╠╔╞ I ═╧─ 4=0 ╘╚┼╬
0950 PLOTTEXT(PX,PY,N$)
0960 ┼╠╙┼
0970 TICK:=3
0980 ┼╬─╔╞
0990 DRAWTO(HOR-TICK*X'SC,VERT)
1000 ┼╬─├┴╙┼
1010 ┼╬─╞╧╥ I
1020 ┼╬─╞╧╥ AXIS
1030 ┼╬─╔╞ // END OF PENDOWN DRAW AXES
1040 // DRAW ZERO AXES IF NEEDED
1050 ╔╞ HI(14)=╞┴╠╙┼ ╘╚┼╬ CROSS'AXES
1060 // DRAW GRID ONLY IF PENDOWN
1070 ╔╞ HI(16)=╘╥╒┼ ╘╚┼╬
1080 ╔╞ VALUES(0,2)=╘╥╒┼ ┴╬─ ╘╚┼╬ TYPE<>1 ╘╚┼╬ GRID
1090 ┼╬─╔╞
1100 TEXTSTYLE(1,1,0,0) // FOR LABELS
1110 PLOTTEXT(XST+13*X'SC,YEND+21*Y'SC,LABELS$(0))
1120 PLOTTEXT(XST-3*X'SC,YEND+13*Y'SC,LABELS$(1))
1130 PLOTTEXT(XST-3*X'SC,YEND+5*Y'SC,LABELS$(2))
1140 ├┴╙┼ TYPE ╧╞
1150 ╫╚┼╬ 1
1160 SCATTER'GRAPH
1170 ╫╚┼╬ 2
1180 LINE'GRAPH
1190 ╫╚┼╬ 3
1200 BAR'GRAPH
1210 ┼╬─├┴╙┼
1220
1230 ╨╥╧├ SCATTER'GRAPH
1240 VIEWPORT(OX+1,OX+XPIX,OY+1,OY+YPIX)
1250 ╞╧╥ K:=1 ╘╧ PAIRS ─╧
1260 PLOT(VALUES(K,1),VALUES(K,2))
1270 ┼╬─╞╧╥ K
1280 ┼╬─╨╥╧├ SCATTER'GRAPH
1290
1300 ╨╥╧├ LINE'GRAPH
1310 VIEWPORT(OX+1,OX+XPIX,OY+1,OY+YPIX)
1320 MOVETO(VALUES(1,1),VALUES(1,2))
1330 ╞╧╥ K:=1 ╘╧ PAIRS ─╧
1340 DRAWTO(VALUES(K,1),VALUES(K,2))
1350 ┼╬─╞╧╥ K
1360 ┼╬─╨╥╧├ LINE'GRAPH
1370
1380 ╨╥╧├ BAR'GRAPH
1390 VIEWPORT(OX-3,OX+XPIX+4,OY+1,OY+YPIX+4)
1400 ╞╧╥ I:=1 ╘╧ PAIRS ─╧
1410 // PLOT(VALUES(I,1)-5*X'SC,VALUES(I,2)) // KEEP FOR TESTING
1420 START:=YST; OFFSET:=4*X'SC
1430 Y'UP:=1*Y'SC
1440 ╔╞ YST<0 ┴╬─ ╘╚┼╬ YEND>0 ╘╚┼╬ START:=0
1450 HEIGHT:=VALUES(I,2)
1460 ╔╞ VALUES(I,2)>YEND ╘╚┼╬ HEIGHT:=YEND
1470 ╔╞ VALUES(I,2)<YST ╘╚┼╬
1480 ╔╞ START<>YST ╘╚┼╬
1490 HEIGHT:=YST+4*Y'SC
1500 ┼╠╙┼
1510 HEIGHT:=YST
1520 ┼╬─╔╞
1530 ┼╬─╔╞
1540 PIXELS:=┴┬╙(╔╬╘((HEIGHT-START)/Y'SC))
1550 ╔╞ PIXELS=0 ╘╚┼╬
1560 ╬╒╠╠
1570 ┼╠╔╞ ╙╟╬(VALUES(I,2))=-1 ┴╬─ ╘╚┼╬ START=0 ╘╚┼╬
1580 TEXTSTYLE(1,PIXELS,2,1)
1590 PLOTTEXT(VALUES(I,1)+OFFSET,START,├╚╥$(164))
1600 ┼╠╙┼
1610 TEXTSTYLE(1,PIXELS,0,1)
1620 PLOTTEXT(VALUES(I,1)-OFFSET,START+Y'UP,├╚╥$(164))
1630 ┼╬─╔╞
1640 ╔╞ VALUES(I,2)<YST ╘╚┼╬
1650 TEXTSTYLE(1,1,2,1)
1660 PLOTTEXT(VALUES(I,1)+OFFSET,YST+6*Y'SC,├╚╥$(94))
1670 ┼╠╔╞ VALUES(I,2)>YEND ╘╚┼╬
1680 TEXTSTYLE(1,1,0,1)
1690 PLOTTEXT(VALUES(I,1)-OFFSET,YEND-2*Y'SC,├╚╥$(94))
1700 ┼╬─╔╞
1710 ┼╬─╞╧╥ I
1720 TEXTSTYLE(1,1,0,-1)
1730 ┼╬─╨╥╧├ BAR'GRAPH
1740
1750 ╨╥╧├ CROSS'AXES
1760 ╔╞ ╙╟╬(YST)=-1 ┴╬─ ╘╚┼╬ ╙╟╬(YEND)=1 ╘╚┼╬ // NOT IF PENUP
1770 MOVETO(XST-4*X'SC,0)
1780 DRAWTO(XEND+4*X'SC,0)
1790 ┼╬─╔╞
1800 ╔╞ ╙╟╬(XST)=-1 ┴╬─ ╘╚┼╬ ╙╟╬(XEND)=1 ╘╚┼╬ // NOT IF PENUP
1810 MOVETO(0,YST)
1820 DRAWTO(0,YEND)
1830 ┼╬─╔╞
1840 ┼╬─╨╥╧├ CROSS'AXES
1850
1860 ╨╥╧├ GRID
1870 ╔╞ TYPE<>1 ╘╚┼╬
1880 ╞╧╥ UP:=1 ╘╧ YN ─╧
1890 ╞╧╥ ALONG:=XST ╘╧ XEND ╙╘┼╨ XI ─╧
1900 PLOT(ALONG,YST+UP*YI)
1910 ┼╬─╞╧╥ ALONG
1920 ┼╬─╞╧╥ UP
1930 ┼╬─╔╞
1940 ┼╬─╨╥╧├ GRID
1950
1960 ╨╥╧├ STORE(HOLD)
1970 ├┴╙┼ HOLD ╧╞
1980 ╫╚┼╬ ╘╥╒┼
1990 ╞╧╥ K:=7 ╘╧ 26 ─╧
2000 HI(K):=INQ(K)
2010 ┼╬─╞╧╥ K
2020 ╫╚┼╬ ╞┴╠╙┼ //ENTER AS NEEDED
2030 TEXTSTYLE(HI(7),HI(8),HI(9),HI(10))
2040 VIEWPORT(HI(19),HI(20),HI(21),HI(22))
2050 WINDOW(HI(23),HI(24),HI(25),HI(26))
2060 ┼╬─├┴╙┼
2070 ┼╬─╨╥╧├ STORE
2080 STORE(0) // RESET VALUES
2090 ┼╬─╨╥╧├ GRAPH
2100